#include "exit.h"

void IRAM_ATTR exit_gpio_isr_handler(void *args)
{
    uint32_t gpio_num=(uint32_t)args;
    esp_rom_delay_us(10000);
    if(gpio_num==GPIO_NUM_0)
    {
        LED_TOGGLE();
    }
}

void exit_init(void)
{
    gpio_config_t boot_key_intr_init_struct;
    boot_key_intr_init_struct.pin_bit_mask = 1ULL << BOOT_KEY_INTR_GPIO_PIN;
    boot_key_intr_init_struct.mode = GPIO_MODE_INPUT;
    boot_key_intr_init_struct.intr_type = GPIO_INTR_NEGEDGE;
    boot_key_intr_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;
    boot_key_intr_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;
    gpio_config(&boot_key_intr_init_struct);

    gpio_install_isr_service(ESP_INTR_FLAG_EDGE);
    gpio_isr_handler_add(BOOT_KEY_INTR_GPIO_PIN,
                         &exit_gpio_isr_handler,
                         (void *)BOOT_KEY_INTR_GPIO_PIN);
    gpio_intr_enable(BOOT_KEY_INTR_GPIO_PIN);
}